// 当前操作页的ID，隐藏历史的，保存当前的
var CURR_PAGE_ID = "";
// 报文日志的条数
var COUNT_LOGS = 0;
// 报文日志的上限
var MAX_COUNT_LOGS = 30;
// 当前操作按钮的ID和文本
var CURR_BTN_ID;
var CURR_BTN_TEXT;
var TIME_OUT;
// 超时时间
var SERAIL_PORT_TIME_OUT = 40;

// 默认的调试指示器地址
var DEFAULT_INDICATOR_ADDR = "0061D7";
// 组帧发送端
var COMPOSE_SENDER = "AAAAAA";
// 组帧接收端
var COMPOSE_RECEIVER = "BBBBBB";

/**
 * 通信检测导航按钮绑定事件
 */
var commTest = function() {
	$("#" + CURR_PAGE_ID).hide();
	CURR_PAGE_ID = "commtestcontent";

	$("#navfunctitle").html("通信检测");
	$("#commtestcontent").show("fast", function() {
				loadDeviceInfo();
			});
	$("#framelogcontent").hide();

	// 启用按钮
	clearTimeout(TIME_OUT);
	// enableBtnById("refreshbtn", "刷新");
	// enableBtnById("readcommaddrbtn", "读模块地址");

	// 刷新事件
	$("#refreshbtn").unbind().bind("tap", function() {
				// 禁用按钮
				startTimeout(this, "刷新");
				loadDeviceInfo();
			});

	// 读模块地址事件
	$("#readcommaddrbtn").unbind().bind("tap", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				$("#commaddr", $("#commtestcontent")).val("");

				startTimeout(this, "读模块地址");

				try {
					window.debugjsi.getDeviceCommAddr();
				} catch (e) {
				}
			});

	// 设模块地址事件
	$("#setcommaddrbtn").unbind().bind("tap", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var commAddr = $("#commaddr", $("#commtestcontent")).val();
				commAddr = commAddr.trim().toUpperCase();
				$("#commaddr", $("#commtestcontent")).val(commAddr);

				var reg = /[0-9a-fA-F]{6}/;
				var r = commAddr.match(reg);
				if (r == null)
					return false;
				
				startTimeout(this, "设模块地址");

				try {
					window.debugjsi.setInnerCommAddr(commAddr);
				} catch (e) {
				}
			});
};

/**
 * 
 */
var handleSettingConfirmMsgCallback = function(actionId) {
	if ("84" == actionId) {
		endTimeout("setcommaddrbtn", "设模块地址");
	}
};

/**
 * 加载设备信息
 */
var loadDeviceInfo = function() {

	// 禁用按钮
	$("#refreshbtn", $("#commtestcontent")).button("disable");
	$("#readcommaddrbtn", $("#commtestcontent")).button("disable");

	// 清空表单
	$("#devicename", $("#commtestcontent")).val("");
	$("#serialno", $("#commtestcontent")).val("");
	$("#devicestatus", $("#commtestcontent")).val("");
	$("#commaddr", $("#commtestcontent")).val("");

	try {
		window.usbdevicehandler.getDeviceInfo();
	} catch (e) {
	}
};

/**
 * 查询设备通信地址回调函数
 * 
 * @param {}
 *            commAddr, 返回通信地址
 */
var getDeviceCommAddrCallback = function(commAddr) {
	endTimeout("readcommaddrbtn", "读模块地址");

	$("#commaddr", $("#commtestcontent")).val(commAddr);
};

/**
 * 根据按钮的id启用按钮
 */
var enableBtnById = function(id, text) {
	$("#" + id).button("enable");
	$("#" + id).val(text).button("refresh");
};

/**
 * 组帧演示导航按钮绑定事件
 */
var composeFrame = function() {
	$("#" + CURR_PAGE_ID).hide();
	CURR_PAGE_ID = "composeframecontent";

	$("#navfunctitle").html("自组帧调试");
	$("#composeframecontent").show();
	$("#framelogcontent").hide();

	// 清空提示
	$("#tipframe", $("#composeframecontent")).html("");
	$(".tipcontentspan", $("#composeframecontent")).html("");

	// 清空结果
	$("#resultframe", $("#composeframecontent")).val("");
	$("#framedataarea", $("#composeframecontent"))
			.val("7E 09 87 88 88 30 09 01" + " "
					+ DEFAULT_INDICATOR_ADDR.substring(4) + " "
					+ DEFAULT_INDICATOR_ADDR.substring(2, 4) + " "
					+ DEFAULT_INDICATOR_ADDR.substring(0, 2) + " " + "88 16");
	// 7e 09 12 23 34 1f 09 01 eb 56 00 45 16
	// 发送端地址和接收端地址赋值
	$("#senderaddr", $("#composeframecontent")).val(COMPOSE_SENDER);
	$("#receiveraddr", $("#composeframecontent")).val(COMPOSE_RECEIVER);
	$("#function", $("#composeframecontent")).val("2");

	// 启用按钮
	clearTimeout(TIME_OUT);
	enableBtnById("composeframebtn", "组帧");
	enableBtnById("validateframebtn", "验证");
	enableBtnById("sendcomposeframebtn", "下发");

	// 组帧事件
	$("#composeframebtn", $("#composeframecontent")).unbind("click").bind(
			"click", function() {

				// 清空结果
				$("#resultframe", $("#composeframecontent")).val("");

				var senderAddr = $("#senderaddr", $("#composeframecontent"))
						.val();
				var receiverAddr = $("#receiveraddr", $("#composeframecontent"))
						.val();
				var func = $("#function", $("#composeframecontent")).val();

				// 清空提示
				$(".tipcontentspan", $("#composeframecontent")).html("");
				if (0 >= senderAddr.trim().length) {
					$(".tipcontentspan", $("#composeframecontent"))
							.html("发送端地址不能为空!");
					return;
				} else if (6 != senderAddr.trim().length) {
					$(".tipcontentspan", $("#composeframecontent"))
							.html("发送端地址错误, 长度为6个字符!");
					return;
				}

				if (0 >= receiverAddr.trim().length) {
					$(".tipcontentspan", $("#composeframecontent"))
							.html("接收端地址不能为空!");
					return;
				} else if (6 != receiverAddr.trim().length) {
					$(".tipcontentspan", $("#composeframecontent"))
							.html("接收端地址错误, 长度为6个字符!");
					return;
				}

				// 禁用按钮
				startTimeout(this, "组帧");

				try {
					window.debugjsi
							.composeFrame(senderAddr, receiverAddr, func);
				} catch (e) {
				}
			});

	// 验证调试帧事件
	$("#validateframebtn").unbind("click").bind("click", function() {

		var frameDataArea = $("#framedataarea", $("#composeframecontent"))
				.val().trim();

		// 清空提示
		$("#tipframe", $("#composeframecontent")).html("");
		if (0 >= frameDataArea.trim().length) {
			$("#tipframe", $("#composeframecontent")).html("自组帧不能为空!");
			return;
		}

		startTimeout(this, "验证");

		var frameArr = frameDataArea.split(" ");
		var len = frameArr.length;
		if (len >= 13) {
			DEFAULT_INDICATOR_ADDR = frameArr[len - 3].toUpperCase()
					+ frameArr[len - 4].toUpperCase()
					+ frameArr[len - 5].toUpperCase()
		}
		try {
			window.debugjsi.validateDebugFrame(frameDataArea);
		} catch (e) {
		}
	});

	// 下发调试帧事件
	$("#sendcomposeframebtn").unbind().bind("tap", function() {

		if (!USB_ATTACHED) {
			try {
				window.debugjsi.showNoUSBDeviceMsg();
			} catch (e) {
			}
			return;
		}

		var frameDataArea = $("#framedataarea", $("#composeframecontent"))
				.val().trim();

		// 清空提示
		$("#tipframe", $("#composeframecontent")).html("");
		if (0 >= frameDataArea.trim().length) {
			$("#tipframe", $("#composeframecontent")).html("自组帧不能为空!");
			return;
		}

		$("#framelogcontent").show();

		var frameArr = frameDataArea.split(" ");
		var len = frameArr.length;
		if (len >= 13) {
			DEFAULT_INDICATOR_ADDR = frameArr[len - 3].toUpperCase()
					+ frameArr[len - 4].toUpperCase()
					+ frameArr[len - 5].toUpperCase()
		}

		CURR_BTN_ID = $(this).attr("id");
		CURR_BTN_TEXT = $(".ui-btn-text", $(this).parent()).html();
		startTimeout(this, "下发");

		try {
			window.debugjsi.sendDebugFrame(frameDataArea);
		} catch (e) {
		}
	});
};

/**
 * 组帧演示回调函数
 * 
 * @param {}
 *            data
 */
var composeFrameCallback = function(data) {

	endTimeout("composeframebtn", "组帧");
	$("#resultframe", $("#composeframecontent")).val(data);
};

/**
 * 验证调试帧的回调方法
 * 
 * @param {}
 *            data
 */
var validateDebugFrameCallback = function(data) {

	// 启用按钮
	endTimeout("validateframebtn", "验证");
	enableBtnById("sendcomposeframebtn", "下发");
	if ("EE" == data.trim()) {
		$("#tipframe", $("#composeframecontent")).html("自组帧错误!");
	} else {
		$("#framedataarea", $("#composeframecontent")).val(data);
	}
};

/**
 * 启用按钮
 */
var enableBtn = function() {

	try {
		if (CURR_BTN_ID && 0 < CURR_BTN_ID.trim().length) {
			$("#" + CURR_BTN_ID).button("enable");
			$(".ui-btn-text", $("#" + CURR_BTN_ID).parent())
					.html(CURR_BTN_TEXT);
		}
	} catch (e) {
	}
};

var SUB_MODULE_ID = "sltfunc";
/**
 * 指示器调试导航按钮绑定事件
 */
var indicatorDebug = function() {
	$("#" + CURR_PAGE_ID).hide();
	CURR_PAGE_ID = "indicatordebugcontent";

	$("#navfunctitle").html("指示器调试");
	$("#indicatordebugcontent").show();
	$("#framelogcontent").show();

	SUB_MODULE_ID = "sltfunc";

	// 清空提示
	$(".tipcontentspan", $("#verfunc")).html("");
	$(".tipcontentspan", $("#ngbfunc")).html("");
	$(".tipcontentspan", $("#sltfunc")).html("");
	$(".tipcontentspan", $("#flpfunc")).html("");

	// 清空页面控件值
	$("#indicatoraddr", $("#indicatordebugcontent"))
			.val(DEFAULT_INDICATOR_ADDR);
	// $("#indicatoraddr", $("#indicatordebugcontent")).focus();

	// 启用按钮
	clearTimeout(TIME_OUT);
	enableBtnById("readversionbtn", "读版本");
	enableBtnById("readrelaybtn", "读中继信息");
	enableBtnById("setrelaybtn", "设中继信息");
	enableBtnById("readsleeptimebtn", "读休眠时间");
	enableBtnById("setsleeptimebtn", "设休眠时间");
	enableBtnById("scflipbtn", "短路翻牌");
	enableBtnById("oeflipbtn", "接地翻牌");
	enableBtnById("reflipbtn", "复归");

	// 隐藏所有的，然后显示通信参数
	$(".sub-title", $("#indicatordebugcontent")).parent().hide();
	$("#sltfunc", $("#indicatordebugcontent")).show();
	$("#debugfunc", $("#indicatordebugcontent")).val("slt")
			.selectmenu("refresh");

	// 功能选择
	$("#debugfunc", $("#indicatordebugcontent")).unbind("change").bind(
			"change", function() {

				// 刷新控件
				$(this).selectmenu("refresh");
				// 隱藏上一个功能
				$("#" + SUB_MODULE_ID, $("#indicatordebugcontent")).hide();

				var value = $(this).val();
				SUB_MODULE_ID = value + "func"; // 赋值当前的功能

				if ("ver" == value) {
					$("#verfunc", $("#indicatordebugcontent")).show();
					$("#version", $("#indicatordebugcontent")).val("");
					$(".tipcontentspan", $("#verfunc")).html("");
				} else if ("ngb" == value) {
					$("#ngbfunc", $("#indicatordebugcontent")).show();
					$("#neighbor1", $("#indicatordebugcontent")).val("");
					$("#neighbor2", $("#indicatordebugcontent")).val("");
					$("#parent", $("#indicatordebugcontent")).val("");
					$("input:radio").prop("checked", false)
							.checkboxradio("refresh");
					$("#maxrelaylevel", $("#indicatordebugcontent")).val("-1");
					$("#maxrelaylevel", $("#indicatordebugcontent"))
							.selectmenu("refresh");
					$("#currrelaylevel", $("#indicatordebugcontent")).val("-1");
					$("#currrelaylevel", $("#indicatordebugcontent"))
							.selectmenu("refresh");
					$(".tipcontentspan", $("#ngbfunc")).html("");
				} else if ("slt" == value) {
					$("#sltfunc", $("#indicatordebugcontent")).show();
					$("#sleeptime", $("#indicatordebugcontent")).val("");
					$(".tipcontentspan", $("#sltfunc")).html("");
				} else if ("flp" == value) {
					$("#flpfunc", $("#indicatordebugcontent")).show();
					$(".tipcontentspan", $("#flpfunc")).html("");
				}
			});

	// 读版本事件
	$("#readversionbtn", $("#indicatordebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();
				// 清空提示
				$(".tipcontentspan", $("#verfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#verfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#verfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}

				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();
				// 清空版本信息
				$("#version", $("#indicatordebugcontent")).val("");

				startTimeout(this, "读版本");

				try {
					window.debugjsi.getIndicatorVersion(indicatorAddr);
				} catch (e) {
				}
			});

	// 读中继信息事件
	$("#readrelaybtn", $("#indicatordebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();
				// 清空提示
				$(".tipcontentspan", $("#ngbfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#ngbfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}

				// 清空表单信息
				$("#neighbor1", $("#indicatordebugcontent")).val("");
				$("#neighbor2", $("#indicatordebugcontent")).val("");
				$("#parent", $("#indicatordebugcontent")).val("");
				$("input:radio").prop("checked", false)
						.checkboxradio("refresh");
				$("#maxrelaylevel", $("#indicatordebugcontent")).val("-1");
				$("#maxrelaylevel", $("#indicatordebugcontent"))
						.selectmenu("refresh");
				$("#currrelaylevel", $("#indicatordebugcontent")).val("-1");
				$("#currrelaylevel", $("#indicatordebugcontent"))
						.selectmenu("refresh");
				$(".tipcontentspan", $("#ngbfunc")).html("");

				// 禁用按钮
				$(this).button("disable");
				$(".ui-btn-text", $(this).parent()).html("加载中...");
				$("#setrelaybtn", $("#indicatordebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#readrelaybtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#readrelaybtn", $("#indicatordebugcontent"))
									.val("读中继信息").button("refresh");
							$("#setrelaybtn", $("#indicatordebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);

				// startTimeout(this, "读中继信息");
				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();
				try {
					window.debugjsi.getRelayInfo(indicatorAddr);
				} catch (e) {
				}
			});

	// 设中继信息事件
	$("#setrelaybtn", $("#indicatordebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();
				var neighbor1 = $("#neighbor1", $("#indicatordebugcontent"))
						.val();
				var neighbor2 = $("#neighbor2", $("#indicatordebugcontent"))
						.val();
				var parent = $("#parent", $("#indicatordebugcontent")).val();
				var phase = $("#aphase").prop("checked") == true
						? "A"
						: ($("#bphase").prop("checked") == true
								? "B"
								: $("#cphase").prop("checked") == true
										? "C"
										: "");
				var maxrelaylevel = $("#maxrelaylevel",
						$("#indicatordebugcontent")).val();
				var currrelaylevel = $("#currrelaylevel",
						$("#indicatordebugcontent")).val();

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();

				// 清空提示
				$(".tipcontentspan", $("#ngbfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#ngbfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}

				if (0 >= neighbor1.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("邻居1指示器地址不能为空!");
					return;
				} else if (6 != neighbor1.trim().length) {
					$(".tipcontentspan", $("#ngbfunc"))
							.html("邻居1指示器地址错误, 长度为6个字符!");
					return;
				}

				if (0 >= neighbor2.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("邻居2指示器地址不能为空!");
					return;
				} else if (6 != neighbor2.trim().length) {
					$(".tipcontentspan", $("#ngbfunc"))
							.html("邻居2指示器地址错误, 长度为6个字符!");
					return;
				}

				if (0 >= parent.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("父指示器地址不能为空!");
					return;
				} else if (6 != parent.trim().length) {
					$(".tipcontentspan", $("#ngbfunc"))
							.html("父指示器地址错误, 长度为6个字符!");
					return;
				}

				if (0 >= phase.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("相位不能为空!");
					return;
				}

				if (0 >= maxrelaylevel.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("支线最大中继级数不能为空!");
					return;
				}

				if (0 >= currrelaylevel.trim().length) {
					$(".tipcontentspan", $("#ngbfunc")).html("当前中继级数不能为空!");
					return;
				}

				CURR_BTN_ID = $(this).attr("id");
				CURR_BTN_TEXT = $(".ui-btn-text", $(this).parent()).html();

				// 禁用按钮
				$(this).button("disable");
				$(".ui-btn-text", $(this).parent()).html("加载中...");
				$("#readrelaybtn", $("#indicatordebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#setrelaybtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#setrelaybtn", $("#indicatordebugcontent"))
									.val("设中继信息").button("refresh");
							$("#readrelaybtn", $("#indicatordebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);
				// startTimeout(this, "设中继信息");

				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();
				// 参数
				var params = "{'indicatorAddr':'" + indicatorAddr
						+ "','neighbor1':'" + neighbor1 + "','neighbor2':'"
						+ neighbor2 + "','parent':'" + parent + "','phase':'"
						+ phase + "','maxRelayLevel':'" + maxrelaylevel
						+ "','currRelayLevel':'" + currrelaylevel + "'}";

				try {
					window.debugjsi.setRelayInfo(params);
				} catch (e) {
				}
			});

	// 读休眠时间事件
	$("#readsleeptimebtn", $("#indicatordebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();

				// 清空提示
				$(".tipcontentspan", $("#sltfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#sltfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#sltfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}

				// 清空表单信息
				$("#sleeptime", $("#indicatordebugcontent")).val("");

				// 禁用按钮
				$(this).button("disable");
				$(".ui-btn-text", $(this).parent()).html("加载中...");
				$("#setsleeptimebtn", $("#indicatordebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#readsleeptimebtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#readsleeptimebtn", $("#indicatordebugcontent"))
									.val("读休眠时间").button("refresh");
							$("#setsleeptimebtn", $("#indicatordebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);

				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();
				// startTimeout(this, "读休眠时间");

				try {
					window.debugjsi.getSleepTime(indicatorAddr);
				} catch (e) {
				}
			});

	// 设休眠时间事件
	$("#setsleeptimebtn", $("#indicatordebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();
				var sleepTime = $("#sleeptime", $("#indicatordebugcontent"))
						.val();

				$(".tipcontentspan", $("#sltfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#sltfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#sltfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}

				if (0 >= sleepTime.trim().length) {
					$(".tipcontentspan", $("#sltfunc")).html("休眠时间不能为空!");
					return;
				}

				CURR_BTN_ID = $(this).attr("id");
				CURR_BTN_TEXT = $(".ui-btn-text", $(this).parent()).html();

				// 禁用按钮
				$(this).button("disable");
				$(".ui-btn-text", $(this).parent()).html("加载中...");
				$("#readsleeptimebtn", $("#indicatordebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#setsleeptimebtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#setsleeptimebtn", $("#indicatordebugcontent"))
									.val("设休眠时间").button("refresh");
							$("#readsleeptimebtn", $("#indicatordebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);
				// startTimeout(this, "设休眠时间");
				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();

				try {
					window.debugjsi.setSleepTime(indicatorAddr, sleepTime);
				} catch (e) {
				}
			});

	// 短路翻牌时间
	$("#scflipbtn", $("#indicatordebugcontent")).unbind("click").bind("click",
			function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();

				// 清空提示
				$(".tipcontentspan", $("#flpfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#flpfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#flpfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}

				CURR_BTN_ID = $(this).attr("id");
				CURR_BTN_TEXT = $(".ui-btn-text", $(this).parent()).html();

				// 禁用按钮
				$(this).button("disable");
				$(".ui-btn-text", $(this).parent()).html("加载中...");
				$("#oeflipbtn", $("#indicatordebugcontent")).button("disable");
				$("#reflipbtn", $("#indicatordebugcontent")).button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#scflipbtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#scflipbtn", $("#indicatordebugcontent"))
									.val("短路翻牌").button("refresh");
							$("#oeflipbtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#reflipbtn", $("#indicatordebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);
				// startTimeout(this, "短路翻牌");
				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();

				try {
					var params = "{'indicatorAddr':'" + indicatorAddr
							+ "','data':'55','oper':'debug'}";
					window.debugjsi.flip(params);
				} catch (e) {
				}
			});

	// 接地翻牌时间
	$("#oeflipbtn", $("#indicatordebugcontent")).unbind("click").bind("click",
			function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();

				// 清空提示
				$(".tipcontentspan", $("#flpfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#flpfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#flpfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}
				CURR_BTN_ID = $(this).attr("id");
				CURR_BTN_TEXT = $(".ui-btn-text", $(this).parent()).html();

				// 禁用按钮
				$(this).button("disable");
				$(".ui-btn-text", $(this).parent()).html("加载中...");
				$("#scflipbtn", $("#indicatordebugcontent")).button("disable");
				$("#reflipbtn", $("#indicatordebugcontent")).button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#oeflipbtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#oeflipbtn", $("#indicatordebugcontent"))
									.val("接地翻牌").button("refresh");
							$("#scflipbtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#reflipbtn", $("#indicatordebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);
				// startTimeout(this, "接地翻牌");
				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();

				try {
					var params = "{'indicatorAddr':'" + indicatorAddr
							+ "','data':'66','oper':'debug'}";
					window.debugjsi.flip(params);
				} catch (e) {
				}
			});

	// 翻牌复归
	$("#reflipbtn", $("#indicatordebugcontent")).unbind("click").bind("click",
			function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var indicatorAddr = $("#indicatoraddr",
						$("#indicatordebugcontent")).val();

				// 清空提示
				$(".tipcontentspan", $("#flpfunc")).html("");
				if (0 >= indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#flpfunc")).html("指示器地址不能为空!");
					return;
				} else if (6 != indicatorAddr.trim().length) {
					$(".tipcontentspan", $("#flpfunc"))
							.html("指示器地址错误, 长度为6个字符!");
					return;
				}
				CURR_BTN_ID = $(this).attr("id");
				CURR_BTN_TEXT = $(".ui-btn-text", $(this).parent()).html();

				// 禁用按钮
				$(this).button("disable");
				$(".ui-btn-text", $(this).parent()).html("加载中...");
				$("#scflipbtn", $("#indicatordebugcontent")).button("disable");
				$("#oeflipbtn", $("#indicatordebugcontent")).button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#reflipbtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#reflipbtn", $("#indicatordebugcontent"))
									.val("复归").button("refresh");
							$("#scflipbtn", $("#indicatordebugcontent"))
									.button("enable");
							$("#oeflipbtn", $("#indicatordebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);
				// startTimeout(this, "复归");
				DEFAULT_INDICATOR_ADDR = indicatorAddr.trim().toUpperCase();

				try {
					var params = "{'indicatorAddr':'" + indicatorAddr
							+ "','data':'AA','oper':'debug'}";
					window.debugjsi.flip(params);
				} catch (e) {
				}
			});
};

/**
 * 开始超时时间计时
 * 
 * @param {}
 *            obj
 * @param {}
 *            btnValue
 */
var startTimeout = function(obj, text) {

	// 禁用按钮
	$(obj).button("disable");
	$(obj).val("加载中...").button("refresh");

	// 重新启用按钮
	TIME_OUT = setTimeout(function() {
				$(obj).button("enable");
				$(obj).val(text).button("refresh");
			}, SERAIL_PORT_TIME_OUT * 1000);
};

/**
 * 完成超时时间计时
 * 
 * @param {}
 *            obj
 * @param {}
 *            btnValue
 */
var endTimeout = function(id, text) {

	clearTimeout(TIME_OUT);
	// 启用按钮
	enableBtnById(id, text);
};

/**
 * 显示下行的帧
 * 
 * @param {}
 *            outFrame
 */
var showOutFrame = function(outFrame) {

	COUNT_LOGS++;
	if (COUNT_LOGS > MAX_COUNT_LOGS) {
		$("#log", $("#framelogcontent")).html("");
		COUNT_LOGS = 0;
	}

	var date = new Date();
	var pContent = "<p class='log-list'>"
			+ getNowDatetime(date)
			+ "&nbsp;&nbsp;<img src='../../image/down.png' alt='down'/>&nbsp;&nbsp;"
			+ outFrame + "</p>";
	$("#log", $("#framelogcontent")).prepend(pContent);
};

/**
 * 显示上行的帧
 * 
 * @param {}
 *            outFrame
 */
var showInFrame = function(inFrame) {

	COUNT_LOGS++;
	if (COUNT_LOGS > MAX_COUNT_LOGS) {
		$("#log", $("#framelogcontent")).html("");
		COUNT_LOGS = 0;
	}

	var date = new Date();
	var pContent = "<p class='log-list'>"
			+ getNowDatetime(date)
			+ "&nbsp;&nbsp;<img src='../../image/up.png' alt='up'/>&nbsp;&nbsp;"
			+ inFrame + "</p>";
	$("#log", $("#framelogcontent")).prepend(pContent);

	if ("EE EE EE EE EE EE EE EE EE EE" == inFrame.trim()) {
		enableBtn();
	}
};

/**
 * 读指示器版本的回调函数
 * 
 * @param {}
 *            data
 */
var getIndicatorVersionCallback = function(data) {

	endTimeout("readversionbtn", "读版本");

	data = JSON.parse(data);
	var info = "硬件版本: " + data.hardware + "; " + "软件版本: " + data.software;
	$("#version", $("#indicatordebugcontent")).val(info);
};

/**
 * 读节点中继信息的回调函数
 * 
 * @param {}
 *            data
 */
var getRelayInfoCallback = function(data) {

	endTimeout("readrelaybtn", "读中继信息");
	$("#setrelaybtn", $("#indicatordebugcontent")).button("enable");

	data = JSON.parse(data);

	$("#neighbor1", $("#indicatordebugcontent")).val(data.neighbour1);
	$("#neighbor2", $("#indicatordebugcontent")).val(data.neighbour2);
	$("#parent", $("#indicatordebugcontent")).val(data.parent);

	var phase = data.phase;
	var phaseId;
	if (phase == "1") {
		phaseId = "aphase";
	} else if (phase == "2") {
		phaseId = "bphase";
	} else if (phase == "3") {
		phaseId = "cphase";
	}
	$("#" + phaseId).prop("checked", true).checkboxradio("refresh");

	$("#maxrelaylevel", $("#indicatordebugcontent")).val(data.maxRelayLevel);
	$("#maxrelaylevel", $("#indicatordebugcontent")).selectmenu("refresh");

	$("#currrelaylevel", $("#indicatordebugcontent")).val(data.currRelayLevel);
	$("#currrelaylevel", $("#indicatordebugcontent")).selectmenu("refresh");
};

/**
 * 设置中继节点信息
 * 
 * @param {}
 *            data
 */
var setRelayInfoCallback = function(data) {
	data = JSON.parse(data);
	var success = data.success;
	if (success) {
		endTimeout("setrelaybtn", "设中继信息");
		$("#readrelaybtn", $("#indicatordebugcontent")).button("enable");
	}
};

/**
 * 读休眠时间的回调函数
 * 
 * @param {}
 *            data
 */
var getSleepTimeCallback = function(data) {

	endTimeout("readsleeptimebtn", "读休眠时间");
	$("#setsleeptimebtn", $("#indicatordebugcontent")).button("enable");

	data = JSON.parse(data);

	$("#sleeptime", $("#indicatordebugcontent")).val(data);
	$("#sleeptime", $("#indicatordebugcontent")).selectmenu("refresh");
};

/**
 * 设置休眠时间的回调函数
 */
var setSleepTimeCallback = function() {

	endTimeout("setsleeptimebtn", "设休眠时间");
	$("#readsleeptimebtn", $("#indicatordebugcontent")).button("enable");
};

/**
 * 终端调试导航按钮绑定事件
 */
var terminalDebug = function() {
	$("#" + CURR_PAGE_ID).hide();
	CURR_PAGE_ID = "terminaldebugcontent";

	$("#navfunctitle").html("终端调试");
	$("#terminaldebugcontent").show();
	$("#framelogcontent").show();

	SUB_MODULE_ID = "commparamsfunc";

	// 清空提示
	$(".tipcontentspan", $("#verfunc")).html("");
	$(".tipcontentspan", $("#addrfunc")).html("");
	$(".tipcontentspan", $("#commparamsfunc")).html("");
	$(".tipcontentspan", $("#commstatusfunc")).html("");
	$(".tipcontentspan", $("#resetfunc")).html("");

	// 启用按钮
	clearTimeout(TIME_OUT);
	enableBtnById("readtversionbtn", "读版本");
	enableBtnById("readterminaladdrbtn", "读终端地址");
	enableBtnById("setterminaladdrbtn", "设终端地址");
	enableBtnById("readcommparamsbtn", "读通信参数");
	enableBtnById("setcommparamsbtn", "设通信参数");
	enableBtnById("readcommstatusbtn", "读通信状态");
	enableBtnById("resetbtn", "复位");

	// 隐藏所有的，然后显示通信参数
	$(".sub-title", $("#terminaldebugcontent")).parent().hide();
	$("#commparamsfunc", $("#terminaldebugcontent")).show();
	$("#debugfunc", $("#terminaldebugcontent")).val("commparams")
			.selectmenu("refresh");

	// 功能选择
	$("#debugfunc", $("#terminaldebugcontent")).unbind("change").bind("change",
			function() {

				// 刷新控件
				$(this).selectmenu("refresh");
				// 隱藏上一个功能
				$("#" + SUB_MODULE_ID, $("#terminaldebugcontent")).hide();

				var value = $(this).val();
				SUB_MODULE_ID = value + "func"; // 赋值当前的功能
				if ("tver" == value) {
					$("#tverfunc", $("#terminaldebugcontent")).show();
					$("#version", $("#terminaldebugcontent")).val("");
					$(".tipcontentspan", $("#tverfunc")).html("");
				} else if ("addr" == value) {
					$("#addrfunc", $("#terminaldebugcontent")).show();
					$("#terminaladdr", $("#terminaldebugcontent")).val("");
					$(".tipcontentspan", $("#ngbfunc")).html("");
				} else if ("commparams" == value) {
					$("#commparamsfunc", $("#terminaldebugcontent")).show();
					$("#hostip", $("#terminaldebugcontent")).val("");
					$("#hostport", $("#terminaldebugcontent")).val("");
					$("#apn", $("#terminaldebugcontent")).val("");
					$("#heartbeat", $("#commparamsfunc")).val("");
					$("#connection", $("#terminaldebugcontent")).val("");
					$(".tipcontentspan", $("#commparamsfunc")).html("");
				} else if ("commstatus" == value) {
					$("#commstatusfunc", $("#terminaldebugcontent")).show();
					$("#reg", $("#terminaldebugcontent")).val("");
					$("#commstep", $("#terminaldebugcontent")).val("");
					$("#signalquality", $("#terminaldebugcontent")).val("");
					$("#currtime", $("#terminaldebugcontent")).val("");
					$("#heartbeat", $("#commstatusfunc")).val("");
					$("#lasthearttime", $("#terminaldebugcontent")).val("");
					$(".tipcontentspan", $("#commstatusfunc")).html("");
				} else if ("reset" == value) {
					$("#resetfunc", $("#terminaldebugcontent")).show();
				}
			});

	// 读版本事件
	$("#readtversionbtn", $("#terminaldebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var wirelessAddr = $("#wirelessaddr",
						$("#terminaldebugcontent")).val();
				// 清空提示
				$(".tipcontentspan", $("#tverfunc")).html("");
				if (0 >= wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#tverfunc")).html("终端无线模块地址不能为空!");
					return;
				} else if (6 != wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#tverfunc"))
							.html("终端无线模块地址错误, 长度为6个字符!");
					return;
				}

				// 清空版本信息
				$("#version", $("#terminaldebugcontent")).val("");
				startTimeout(this, "读版本");

				try {
					window.debugjsi.getTerminalVersion(wirelessAddr);
				} catch (e) {
				}
			});

	// 读终端地址
	$("#readterminaladdrbtn", $("#terminaldebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var wirelessAddr = $("#wirelessaddr",
						$("#terminaldebugcontent")).val();
				// 清空提示
				$(".tipcontentspan", $("#addrfunc")).html("");
				if (0 >= wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#addrfunc")).html("终端无线模块地址不能为空!");
					return;
				} else if (6 != wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#addrfunc"))
							.html("终端无线模块地址错误, 长度为6个字符!");
					return;
				}

				// 清空表单信息
				$("#terminaladdr", $("#terminaldebugcontent")).val("");

				// 禁用按钮
				$(this).button("disable");
				$(this).val("加载中...").button("refresh");
				$("#setterminaladdrbtn", $("#terminaldebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#readterminaladdrbtn",
									$("#terminaldebugcontent"))
									.button("enable");
							$("#readterminaladdrbtn",
									$("#terminaldebugcontent")).val("读终端地址")
									.button("refresh");
							$("#setterminaladdrbtn", $("#terminaldebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);

				try {
					window.debugjsi.getTerminalAddr(wirelessAddr);
				} catch (e) {
				}
			});

	// 设终端地址事件
	$("#setterminaladdrbtn", $("#terminaldebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var wirelessAddr = $("#wirelessaddr",
						$("#terminaldebugcontent")).val();
				// 清空提示
				$(".tipcontentspan", $("#addrfunc")).html("");
				if (0 >= wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#addrfunc")).html("终端无线模块地址不能为空!");
					return;
				} else if (6 != wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#addrfunc"))
							.html("终端无线模块地址错误, 长度为6个字符!");
					return;
				}

				var terminalAddr = $("#terminaladdr",
						$("#terminaldebugcontent")).val();
				if (null == terminalAddr || undefined == terminalAddr
						|| 8 != terminalAddr.trim().length) {
					$(".tipcontentspan", $("#verfunc")).html("终端地址错误, 请确认!");
					return;
				}

				// 禁用按钮
				$(this).button("disable");
				$(this).val("加载中...").button("refresh");
				$("#readterminaladdrbtn", $("#terminaldebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#setterminaladdrbtn", $("#terminaldebugcontent"))
									.button("enable");
							$("#setterminaladdrbtn", $("#terminaldebugcontent"))
									.val("设终端地址").button("refresh");
							$("#readterminaladdrbtn",
									$("#terminaldebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);

				try {
					window.debugjsi.setTerminalAddr(wirelessAddr, terminalAddr);
				} catch (e) {
				}
			});

	// 读通信参数
	$("#readcommparamsbtn", $("#terminaldebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var wirelessAddr = $("#wirelessaddr",
						$("#terminaldebugcontent")).val();
				// 清空提示
				$(".tipcontentspan", $("#commparamsfunc")).html("");
				if (0 >= wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#commparamsfunc"))
							.html("终端无线模块地址不能为空!");
					return;
				} else if (6 != wirelessAddr.trim().length) {
					$(".tipcontentspan", $("#commparamsfunc"))
							.html("终端无线模块地址错误, 长度为6个字符!");
					return;
				}

				// 清空表单信息
				$("#hostip", $("#terminaldebugcontent")).val("");
				$("#hostport", $("#terminaldebugcontent")).val("");
				$("#apn", $("#terminaldebugcontent")).val("");
				$("#heartbeat", $("#commparamsfunc")).val("");
				$("#connection", $("#terminaldebugcontent")).val("");

				// 禁用按钮
				$(this).button("disable");
				$(this).val("加载中...").button("refresh");
				$("#setcommparamsbtn", $("#terminaldebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#readcommparamsbtn", $("#terminaldebugcontent"))
									.button("enable");
							$("#readcommparamsbtn", $("#terminaldebugcontent"))
									.val("读通信参数").button("refresh");
							$("#setcommparamsbtn", $("#terminaldebugcontent"))
									.button("enable");

						}, SERAIL_PORT_TIME_OUT * 1000);

				try {
					window.debugjsi.getTerminalCommParams(wirelessAddr);
				} catch (e) {
				}
			});

	// 设通信参数
	$("#setcommparamsbtn", $("#terminaldebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var wirelessAddr = $("#wirelessaddr",
						$("#terminaldebugcontent")).val();

				var funcDiv = $("#commparamsfunc");
				// 清空提示
				$(".tipcontentspan", funcDiv).html("");
				if (0 >= wirelessAddr.trim().length) {
					$(".tipcontentspan", funcDiv).html("终端无线模块地址不能为空!");
					return;
				} else if (6 != wirelessAddr.trim().length) {
					$(".tipcontentspan", funcDiv).html("终端无线模块地址错误, 长度为6个字符!");
					return;
				}

				var hostIP = $("#hostip", funcDiv).val();
				var hostPort = $("#hostport", funcDiv).val();
				var apn = $("#apn", funcDiv).val();
				var heartBeat = $("#heartbeat", funcDiv).val();
				var connection = $("#connection", funcDiv).val();
				var reg = /^([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.([0-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$/;
				if (null == hostIP || undefined == hostIP || !reg.test(hostIP)) {
					$(".tipcontentspan", funcDiv).html("主站IP地址错误, 请确认!");
					return;
				}

				if (null == hostPort || undefined == hostPort
						|| isNaN(hostPort)) {
					$(".tipcontentspan", funcDiv).html("主站端口错误, 请确认!");
					return;
				}

				if (null == apn || undefined == apn || 0 >= apn.trim().length) {
					$(".tipcontentspan", funcDiv).html("APN不能为空!");
					return;
				}

				if (null == heartBeat || undefined == heartBeat
						|| isNaN(heartBeat)) {
					$(".tipcontentspan", funcDiv).html("心跳周期错误, 请确认!");
					return;
				}

				// 禁用按钮
				$(this).button("disable");
				$(this).val("加载中...").button("refresh");
				$("#readcommparamsbtn", $("#terminaldebugcontent"))
						.button("disable");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#setcommparamsbtn", $("#terminaldebugcontent"))
									.button("enable");
							$("#setcommparamsbtn", $("#terminaldebugcontent"))
									.val("设通信参数").button("refresh");
							$("#readcommparamsbtn", $("#terminaldebugcontent"))
									.button("enable");
						}, SERAIL_PORT_TIME_OUT * 1000);

				try {
					window.debugjsi.setTerminalCommParams(wirelessAddr, hostIP,
							hostPort, apn, heartBeat, connection);
				} catch (e) {
				}
			});

	// 读通信状态
	$("#readcommstatusbtn", $("#terminaldebugcontent")).unbind("click").bind(
			"click", function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var wirelessAddr = $("#wirelessaddr",
						$("#terminaldebugcontent")).val();

				var funcDiv = $("#commstatusfunc");
				// 清空提示
				$(".tipcontentspan", funcDiv).html("");
				if (0 >= wirelessAddr.trim().length) {
					$(".tipcontentspan", funcDiv).html("终端无线模块地址不能为空!");
					return;
				} else if (6 != wirelessAddr.trim().length) {
					$(".tipcontentspan", funcDiv).html("终端无线模块地址错误, 长度为6个字符!");
					return;
				}

				// 清空表单信息
				$("#reg", commstatusfunc).val("");
				$("#commstep", commstatusfunc).val("");
				$("#signalquality", commstatusfunc).val("");
				$("#currtime", commstatusfunc).val("");
				$("#heartbeat", commstatusfunc).val("");
				$("#lasthearttime", commstatusfunc).val("");

				// 禁用按钮
				$(this).button("disable");
				$(this).val("加载中...").button("refresh");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#readcommstatusbtn", commstatusfunc)
									.button("enable");
							$("#readcommstatusbtn", commstatusfunc)
									.val("读通信状态").button("refresh");
						}, SERAIL_PORT_TIME_OUT * 1000);

				try {
					window.debugjsi.getTerminalCommStatus(wirelessAddr);
				} catch (e) {
				}
			});

	// 复位
	$("#resetbtn", $("#terminaldebugcontent")).unbind("click").bind("click",
			function() {

				if (!USB_ATTACHED) {
					try {
						window.debugjsi.showNoUSBDeviceMsg();
					} catch (e) {
					}
					return;
				}

				var wirelessAddr = $("#wirelessaddr",
						$("#terminaldebugcontent")).val();

				var funcDiv = $("#resetfunc");
				// 清空提示
				$(".tipcontentspan", funcDiv).html("");
				if (0 >= wirelessAddr.trim().length) {
					$(".tipcontentspan", funcDiv).html("终端无线模块地址不能为空!");
					return;
				} else if (6 != wirelessAddr.trim().length) {
					$(".tipcontentspan", funcDiv).html("终端无线模块地址错误, 长度为6个字符!");
					return;
				}

				// 禁用按钮
				$(this).button("disable");
				$(this).val("加载中...").button("refresh");

				// 重新启用按钮
				TIME_OUT = setTimeout(function() {
							$("#resetbtn", funcDiv).button("enable");
							$("#resetbtn", funcDiv).val("复位").button("refresh");
						}, SERAIL_PORT_TIME_OUT * 1000);

				try {
					window.debugjsi.resetTerminal(wirelessAddr);
				} catch (e) {
				}
			});
};

/**
 * 获取终端版本信息的回调方法
 * 
 * @param {}
 *            data
 */
var getTerminalVersionCallback = function(data) {
	data = JSON.parse(data);
	var info = "";
	if ("" != data.hwversion) {
		info += "硬件版本: " + data.hwversion + "; ";
	}
	if ("" != data.hwversion) {
		info += "发布日期: " + data.hwdate + "; ";
	}
	info += "软件版本: " + data.swversion + "; ";
	info += "发布日期: " + data.swdate;
	$("#version", $("#terminaldebugcontent")).val(info);

	endTimeout("readtversionbtn", "读版本");
};

/**
 * 获取终端通信状态的回调方法
 * 
 * @param {}
 *            data
 */
var getTerminalCommStatusCallback = function(data) {

	data = JSON.parse(data);
	var regTip = "失败";
	if (Number(data.regstatus) == 1) {
		regTip = "成功";
	}

	$("#reg", $("#terminaldebugcontent")).val(regTip);
	if ("" != data.commstep) {
		$("#commstep", $("#terminaldebugcontent")).val(parseInt(data.commstep,
				16));
	}
	$("#signalquality", $("#terminaldebugcontent")).val(parseInt(
			data.signalquality, 16));
	$("#currtime", $("#terminaldebugcontent")).val(data.currtime);
	$("#heartbeat", $("#commstatusfunc")).val(data.heartbeat);
	$("#lasthearttime", $("#terminaldebugcontent")).val(data.lasthearttime);

	endTimeout("readcommstatusbtn", "读通信状态");
};

/**
 * 读取终端地址的回调方案
 * 
 * @param {}
 *            data
 */
var getTerminalAddrCallback = function(data) {

	data = JSON.parse(data);
	var parent = $("#addrfunc");

	$("#terminaladdr").val(data.terminaladdr.toUpperCase());

	var obj = "readterminaladdrbtn";
	endTimeout(obj, "读终端地址");
	$("#setterminaladdrbtn", $("#terminaldebugcontent")).button("enable");
};

/**
 * 重设終端地址的回调方案
 * 
 * @param {}
 *            data
 */
var setTerminalAddrCallback = function() {

	var parent = $("#addrfunc");
	var obj = "setterminaladdrbtn";
	endTimeout(obj, "设终端地址");
	$("#readterminaladdrbtn", $("#terminaldebugcontent")).button("enable");
};

/**
 * 读取终端通信参数的回调方案
 * 
 * @param {}
 *            data
 */
var getTerminalCommParamsCallback = function(data) {
	data = JSON.parse(data);

	var parent = $("#commparamsfunc");
	$("#hostip", parent).val(data.hostip);
	$("#hostport", parent).val(data.hostport);
	$("#apn", parent).val(data.apn);
	$("#heartbeat", parent).val(data.heartbeat);
	$("#connection", parent).val(data.connection).selectmenu("refresh");

	var obj = "readcommparamsbtn";
	endTimeout(obj, "读通信参数");
	$("#setcommparamsbtn", parent).button("enable");
};

/**
 * 重设終端通信参数的回调方案
 * 
 * @param {}
 *            data
 */
var setTerminalCommParamsCallback = function() {

	var parent = $("#commparamsfunc");
	var obj = "setcommparamsbtn";
	endTimeout(obj, "设通信参数");
	$("#readcommparamsbtn", parent).button("enable");
};

/**
 * 复位终端的回调方法
 * 
 * @param {}
 *            data
 */
var resetTerminalCallback = function() {
	var obj = "resetbtn";
	endTimeout(obj, "复位");
};

/**
 * 指示器实时状态导航按钮绑定事件
 */
var indicatorRTStatus = function() {

	$("#" + CURR_PAGE_ID).hide();
	CURR_PAGE_ID = "indicatorrtcontent";

	$("#navfunctitle").html("指示器实时状态");
	$("#indicatorrtcontent").show();
	$("#framelogcontent").show();

	$("#rtindicatoraddr", $("#indicatorrtcontent")).val(DEFAULT_INDICATOR_ADDR);
	// $("#rtindicatoraddr", $("#indicatorrtcontent")).focus();

	// 清空表单
	$(".tipcontentspan", $("#indicatorrtcontent")).html("");
	$("#status", $("#indicatorrtcontent")).val("");
	$("#powerLevel", $("#indicatorrtcontent")).val("");
	$("#lineLoad", $("#indicatorrtcontent")).val("");

	// 启用按钮
	clearTimeout(TIME_OUT);
	enableBtnById("indicatorrtstatusbtn", "读指示器状态");

	// 读指示器状态事件
	$("#indicatorrtstatusbtn").unbind().bind("tap", function() {

		if (!USB_ATTACHED) {
			try {
				window.debugjsi.showNoUSBDeviceMsg();
			} catch (e) {
			}
			return;
		}

		// 清空表单
		$("#status", $("#indicatorrtcontent")).val("");
		$("#powerLevel", $("#indicatorrtcontent")).val("");
		$("#lineLoad", $("#indicatorrtcontent")).val("");

		var indicatorAddr = $("#rtindicatoraddr", $("#indicatorrtcontent"))
				.val();

		// 清空提示
		$(".tipcontentspan", $("#indicatorrtcontent")).html("");
		if (0 >= indicatorAddr.trim().length) {
			$(".tipcontentspan", $("#indicatorrtcontent")).html("指示器地址不能为空!");
			return;
		} else if (6 != indicatorAddr.trim().length) {
			$(".tipcontentspan", $("#indicatorrtcontent"))
					.html("指示器地址错误, 长度为6个字符!");
			return;
		}
		DEFAULT_INDICATOR_ADDR = indicatorAddr.toUpperCase();
		startTimeout(this, "读指示器状态");

		try {
			window.debugjsi.getIndicatorRTStatus(indicatorAddr);
		} catch (e) {
		}
	});
};

/**
 * 翻牌回调方法
 * 
 * @param {}
 *            data
 */
var flipCallback = function(data) {
	var type = data.type;
	if ("短路翻牌" == type) {
		endTimeout("scflipbtn", "短路翻牌");
		$("#oeflipbtn", $("#indicatordebugcontent")).button("enable");
		$("#reflipbtn", $("#indicatordebugcontent")).button("enable");
	} else if ("接地翻牌" == type) {
		endTimeout("oeflipbtn", "接地翻牌");
		$("#scflipbtn", $("#indicatordebugcontent")).button("enable");
		$("#reflipbtn", $("#indicatordebugcontent")).button("enable");
	} else if ("复归" == type) {
		endTimeout("reflipbtn", "复归");
		$("#scflipbtn", $("#indicatordebugcontent")).button("enable");
		$("#oeflipbtn", $("#indicatordebugcontent")).button("enable");
	}
};

/**
 * 读指示器实时状态的回调函数
 * 
 * @param {}
 *            data
 */
var getIndicatorRTStatusCallback = function(data) {

	endTimeout("indicatorrtstatusbtn", "读指示器状态");

	data = JSON.parse(data);

	$("#status", $("#indicatorrtcontent")).val(data.status);
	$("#powerLevel", $("#indicatorrtcontent")).val(data.powerLevel);
	$("#lineLoad", $("#indicatorrtcontent")).val(data.lineLoad);
};